#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <inttypes.h>
#include <QFileDialog>
#include <QFile>
#include <cv.h>
#include <highgui.h>
#include "ui_mainwindow.h"
#include "decisiones.h"
#include "histograma.h"

#define NUM_BYTES 143
#define INDEX_Posicion_Linea 82
#define INDEX_Kp_direccion 82
#define INDEX_Ki_direccion 90
#define INDEX_Kd_direccion 94
#define INDEX_Error_Acumulado_direccion 98
#define INDEX_Error_Anterior_direccion 102
#define INDEX_Kp_gas 106
#define INDEX_Ki_gas 110
#define INDEX_Kd_gas 114
#define INDEX_Error_Acumulado_gas 118
#define INDEX_Error_Anterior_gas 122
#define INDEX_output_steer 126
#define INDEX_output_throt 128
#define INDEX_EntradaAux 130
#define INDEX_Pulsos_Encoder_Total 132
#define INDEX_Velocidad_Pulsos_s 136


namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void on_pushButton_clicked();

    void on_horizontalSlider_valueChanged(int value);

    void on_ButtonFotoAnterior_clicked();

    void on_ButtonFotoSig_clicked();

    void on_HorizSliderFotogramas_valueChanged(int value);

private:
    Ui::MainWindow *ui;
    uint32_t fotoNum;
    uint32_t barrasMax;
    QVector< QVector<uint32_t> > medidas;
    decisiones miDecision;
    histograma miHistograma;


    void mostrarFoto();

    void mostrarDatos();
};

#endif // MAINWINDOW_H
